# !/user/bin/env python3
# -*- coding: utf-8 -*-
import unittest

"""
    目标：parameterized 插件应用
    步骤：
        1.导包 from parameterized import parameterized
        2.修饰测试函数：@parmeterized.expend(列表数据类型)
        3.在测试函数中使用变量，传递过来的值
        
    语法：
        1.单个参数
        2.多个参数：值为列表嵌套元组，如：[(1,2,3),(3,0,3),(2,1,3)]
        
"""
from parameterized import parameterized


def add(x, y):
    return x + y


def get_data():
    return [(1, 2, 3), (3, 0, 3), (2, 1, 3)]


class Test01(unittest.TestCase):
    # 单个参数写法
    # @parameterized.expand([1, 2, 3])
    # def test_add(self, num):
    #     print(f"num:{num}")

    # 多个参数写法
    # @parameterized.expand([(1, 2, 3), (3, 0, 3), (2, 1, 3)])
    # def test_add_more(self, a, b, result):
    #     print(f"{a}+{b}={result}")

    # 写法2
    # data: list = [(1, 2, 3), (3, 0, 3), (2, 1, 3)]

    # @parameterized.expand(data)
    # def test_add_more(self, a, b, result):
    #     print(f"{a}+{b}={result}")

    # 写法3 【推荐写法】

    @parameterized.expand(get_data())
    def test_add_more(self, a, b, result):
        print(f"{a}+{b}={result}")
